#ifndef __PAGELIB_HPP__
#define __PAGELIB_HPP__

#include <string>
#include <vector>
#include <map>
#include <utility>

#include "DirScanner.hpp"
#include "Configuration.hpp"
#include "FileProcessor.hpp"
#include "Simhash.hpp"
#include <fstream>

using std::map;
using std::pair;
using std::string;
using std::vector;

using std::ofstream;

class PageLib
{
public:
    PageLib(Configuration &conf, DirScanner &dirScanner,
            FileProcessor &fileProcessor, Deduplication &del);
    ~PageLib();

    void create();
    void store();
    void deduplicate();

private:
    Configuration &_conf;
    DirScanner &_dirScanner;
    FileProcessor &_fileProcessor;
    Deduplication &_del;
    map<int, pair<int, int>> _offset;
};

#endif